iT邦幫忙

2021 iThome 鐵人賽

DAY 19
2
自我挑戰組

Python 30天自我挑戰系列 第 19

Day19 - 使用Django進行自動化測試 (1)

  • 分享至 

  • xImage
  •  

今天的實作內容主要根據教學網站進行。

在軟體開發流程的測試,以階段角度來看可以分為:

  • 單元測試:測試單一模組功能是否正確,通常是以class或method層級進行。

  • 迴歸測試:主要目的為測試新加入或修改的程式碼是否影響原有功能,主要做法為重複執行以前的測試項目。

  • 整合測試:主要目的為測試模組與模組間的互動是否正確。

測試對於確保系統品質來說十分重要,但隨著系統越來越龐大,手動測試將花費大量人力與時間,自動化測試就顯得十分重要。

而Django提供的測試框架,可以協助我們完成單元測試的自動化。

測試架構

資料夾架構

Django在執行自動化測時,會自動執行當前目錄下檔名為test*.py格式的檔案,為了方便管理,可採用此架構進行測試程式的管理:

  • 應用程式資料夾
    • tests
      • __init__.py
      • test_modes.py
      • test_forms.py
      • test_views.py

測試程式範例

from django.test import TestCase

class MyTestClass(TestCase):
  def setUpTestData(cls):
    pass
  def setUp(self):
    pass

Django的TestCase中提供了兩種方法進行測試前的設定:setUpTestData()和setUp()。

  • setUpTestData():在該class測試進行前會執行一次。

  • setUp():在該class中每個測試方法執行前都會執行一次

執行自動化測試

使用以下指令即開始自動化測試:

python manage.py test

如果結果不符合,會將不符合的項目列出來。
https://ithelp.ithome.com.tw/upload/images/20211001/20141886hkN6soZXom.png

補充

今天在初次執行時,出現錯誤訊息:
importError: 'tests' module incorrectly imported from 路徑

原因:Django的startapp建立資料夾時,會自動產生test.py檔,其檔案名稱和教學網站的流程中建立的資料夾同名,導致執行時發生錯誤。

解決方法:將tests.py刪除。


上一篇
Day18 - 建立追蹤清單畫面
下一篇
Day20 - 使用Django進行自動化測試 (2)
系列文
Python 30天自我挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言